home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
-
-
-
- SORTF File Sorting Utility
-
- Version 2.37 - Sep 20, 1991
-
-
-
-
-
- Index
- -----
-
-
- Purpose ................................... 1
- Format ................................... 1
- Remarks ...................................1
-
- Options summary ........................... 2
- Invoking from Quick Basic................... 3
-
- Examples .................................. 4
-
- Version history ........................... 5
-
- Usage restrictions ........................ 6
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Copyright (c) Vernon D. Buerg 1985-90. ALL RIGHTS RESERVED.
-
-
- SORTF Command Version 2.37 Page 1
- ------------- Sep 20, 1991
-
- Purpose: The SORTF program reads record data from a file, sorts the
- records, and writes the data to another file.
-
- Format:
- SORTF [d:][path]fname[.ext] [d:][path]fname[.ext]
- [/+nnnn[,len]] -or- [/-nnnn,[len]]
- [/Lnnnn]
- [/R] [/C] [/Q]
- [/K] or [/X]
-
- Remarks: Records are read from the input file, sorted, and written
- to the output file.
-
- Two types of records may be sorted:
-
- 1) logical records. Each record ends with a carriage
- | return and line feed, and may be up to 8192 characters
- in length.
-
- 2) fixed length records. Each record is of length L as
- defined by the '/Lnnnn' parameter. The records may
- contain any kind of data, including carriage return,
- line feed, and end-of-file without effecting the record
- | length. The maximum record is 8192 bytes.
-
-
- The sort order is in ascending ASCII character sequence.
- You may supply the /R parameter to reverse the sort order
- for all fields, or supply /- parameters for each key field
- to be sorted in reverse order. The key fields are
- processed from left to right as supplied in the command
- line.
-
- The /C option may be added to cause SORTF to treat the key
- fields as case insensitive data. That is, lower case
- letters in the key field are treated as upper case letters.
-
- You may supply up to sixteen key offsets and lengths by
- using the /+ or /- parameter, one for each key position and
- its length. If /+ and /- are omitted, the key is taken
- from the first character position for a length of 11.
-
- | The position 'nnnn' may be a value from one to 8192.
-
- | The key length 'len' may be a value from 1 to 8192. The /+
- operand specifies that the specified key is sorted in
- ascending order. The /- specifies desending sort order for
- that key.
-
- Use the /Q option to suppress the display of informational
- messages. Error messages can not be suppressed.
-
-
- SORTF Command OPTIONS SUMMARY Version 2.37 Page 2
- ------------- Sep 20, 1991
-
-
- /C specifies that the keys are case insensitive; if
- supplied, all lower case characters in the key fields
- are converted to upper case for the purposes of
- sorting.
-
- /R sort in reverse order; over-rides any /- options and
- treats them all as /+ options.
-
- /Q suppress informational messages.
-
-
- /K creates an output file that consists of sorted key data
- which includes a 5-byte information prefix.
-
- /X like /K, except that the 5-byte information prefix is
- omitted, and a cr/lf (carriage return and line feed)
- is added to each record.
-
-
- /L specifies the sorting of fixed length records
-
- /+ defines the location and length of a key field to be
- sorted in ascending order
-
- /- defines the location and length of a key field to be
- sorted in descending order
-
-
-
- SORTF Command INVOKING FROM QUICK BASIC Version 2.37 Page 3
- ------------- Sep 20, 1991
-
-
- To invoke SORTF from a Quick Basic program, you can use either
- the SHELL or CALL statements. Use of SHELL is straightforward.
-
- Use of CALL requires that you include SORTF.OBJ when you LINK
- your QB program.
-
- You need to make memory available to SORTF from your QB
- program. For QB version 3 and earlier, you can use the LINK
- '/CP:nnnn' option. For QB 4 and later, I don't know how you
- release memory. For BC 7, you can use the SETMEM function.
-
-
- In the QB program : CALL SORTF ("test.fil new.fil /+1,12")
- -or- SHELL "sortf test.fil new.fil /+1,12"
-
-
- For CALL: LINK qbprogram + SORTF /CP:5000;
-
-
- The /CP:5000 option will limit the QB program to 80K plus the
- size of its code, data and stack. Whatever is left can be used
- by CALLed programs. That amount will be about 120K less than
- the DOS available memory.
-
-
- For BC 7, here's an example of using SETMEM to release memory:
-
- M1&=Setmem(0) ' Get heap size
- M2&=Setmem(-M1&+128000) ' Release all but 128k
- Call SORTF (" "+infile$+" "+outfile+" /options")
- M3&=Setmem(M1&) ' Re-allocate all to heap
-
-
- SORTF Command EXAMPLES Version 2.37 Page 4
- ------------- Sep 20, 1991
-
- o to sort a file in descending order with the keys in
- position 10:
-
- SORTF TEST.DAT TEST.SRT /R/+10
-
- o to sort the same file using keys with 24 characters:
-
- SORTF TEST.DAT TEST.SRT /R/+10,24
-
- o to sort a file of fixed length, binary records; the input
- file contains records of 18 bytes each, the key is two
- bytes at position 17 in each record in descending
- order, and 11 bytes at postion 1 in ascending order:
-
- SORTF SRTCATS.RND SRTCATS.IND /L18 /-17,2 /+1,12
-
- o to sort on different keys, but creating an an output file
- with the keys only:
-
- SORTF TEST.DAT TEST.KEYS /-10,2 /+20,4 /-16,3 /K
-
- Note the use of /-. It specifies that the first and third
- keys are sorted in descending order, the second key is
- sorted in ascending order.
-
- The format of the keys-only file using /K is:
-
- Offset Length Contents
- ------ ------ ------------------------------------------
- 0 2 Length of data record excluding CR and LF
- 2 3 Offset to record in input file
- +0 hi-byte of 3-byte address offset
- +1 low word of address offset
- 5 n Variable key data, depends on key definitions
-
- The format of the keys-only file using /X is:
-
- Offset Length Contents
- ------ ------ ------------------------------------------
- 0 n Variable key data, depends on key definitions
- n 2 Carriage return and line feed
-
- In the example above, the variable key data format is:
-
- 5 2 Data in records at offset 10
- 7 4 Data in records at offset 20
- 11 3 Data in records at offset 16
- 14 0 End of key record.
-
- The length of each keys-only record is 5 plus the sum of
- the individual key lengths. The default, if no /+ or /- is
- specified, is 16 bytes each.
-
- SORTF Command VERSION HISTORY Version 2.37 Page 5
- ------------- Sep 20, 1991
-
- 2.0, July 11, 1985. Corrects CR/LF problem.
-
- 2.1, August 3, 1985. Corrects a problem sorting files larger than 64K.
-
- 2.15, Dec 27, 1985. Corrects problems with first record of file.
- Adds /C option to treat keys as case insensitive data
- The key length may be specified on the command line
-
- 2.17, Feb 25, 1987. Correct problem when maximum records exceeded
- Convert to COM program
-
- 2.20, June 28, 1987. Add /Q option to suppress informational messages
- Change to allow up to 16 key field specifications
-
- 2.23, Aug 6, 1987. Add "-" option to sort individual fields in reverse order
- Add /K option to produce output file with keys only
-
- 2.24, Sep 15, 1987. Add /Lnnn option for sorting fixed length records
-
- 2.25, Sep 19, 1987. Correction for /L dropping last char of file and fouling
- records.
-
- 2.26, Dec 16, 1987. Cosmetic changes
-
- 2.27, Feb 1, 1988. Fix divide overflow on large files; terminate with
- message "Maximum records exceeded"
-
- 2.29, March 5, 1988. Release gotten memory
- Add SORTF entry point for CALL from Quick Basic
-
- 2.30, May 23, 1988. Change maximum record size from 255 to 1023
- Change default key length from 12 to 11
-
- 2.31, Feb 16, 1989. Add /X option like /K to write file with keys only,
- and a cr/lf at the end of each record.
-
- 2.32, Feb 18, 1989. Correct problem LINKing with QB 4.5
- 2.33, Mar 16, 1989. Expand record size limit from 1024 to 8192 bytes.
- 2.34, Feb 8, 1990. Allow command line numbers to exceed 2 digits.
- Correct collation of multiple keys.
- 2.35, Feb 15, 1990. Correct use of /K with record lengths over 255 bytes
- Allow records to be terminated by CR-LF, just CR,
- or just LF line feed.
- |2.36, Sep 18, 1991. Correct problem with files over 16k records.
- |2.37, Sep 20, 1991. Improve speed for ascending sorts
-
-
- SORTF Command RESTRICTIONS Version 2.37 Page 6
- ------------- Sep 20, 1991
-
- Depending on the amount of memory available, up to 40000
- records may be sorted. The maximum file size that can be
- sorted depends on the maximum number of records and the
- average record length. For example, the file size is
- limited to 3.2 mb for a file consisting of 80-byte records.
-
-
- The advantages of using SORTF instead of the SORT filter:
- - files larger than 63K may be sorted
- - less time is required
- - sort order can be based on up to 16 fields
- - fixed length files can be sorted
-
- For best results, place the input file on the fastest
- available drive, e.g. RAM disk.
-
-
-
- Written by Vernon Buerg for the IBM PC using DOS 2.0 or
- later. You may distribute SORTF given these restrictions:
-
- o the program shall be supplied in its original, unmodified
- form, which includes this documentation;
-
- o no fee is charged;
-
- o for-profit use without a license is prohibited;
-
- o the program may not be included, or bundled, with other
- goods or services. Exceptions may be granted upon
- written request only. This also applies to clubs and
- distributors.
-
-
- For use by corporations and other institutions, contact me
- for a licensing agreement.
-
- If you find SORTF useful, your gift of $15, or any amount,
- would be greatly appreciated.
-
-
- Vernon D. Buerg
- 139 White Oak Circle
- Petaluma, CA 94952
-
- Data: (707) 778-8944, 24-hour BBS
- CompuServe: 70007,1212 (Go IBMSYS)
-
-